package com.ruitu.mall_98_2.mvp.contract;

import com.beanu.arad.base.BaseModel;
import com.beanu.arad.base.BasePresenter;
import com.beanu.arad.base.BaseView;
import com.ruitu.router_module.bean.api.BaseResult;
import com.ruitu.router_module.bean.order.NeedPay;
import com.ruitu.router_module.bean.order.PayReq;

import rx.Observable;

public interface PayOrderContract {
    interface Model extends BaseModel {
        Observable<BaseResult<String>> aliPayForApp(String status, String orderId);

        Observable<BaseResult> balanceForApp(String accountId, String code, String orderId);

        Observable<BaseResult<PayReq>> weixinPayForApp(String status, String orderId);

        Observable<BaseResult<NeedPay>> getOrderMoney(String orderId);
    }

    interface View extends BaseView {
        void setPaySuc(String info);

        void setPaySuc();

        void setWeixinPay(PayReq pay);

        void setNeedPay(NeedPay needPay);
    }

    abstract class Presenter extends BasePresenter<View, Model> {
        public abstract void aliPayForApp(String status, String orderId);

        public abstract void balanceForApp(String accountId, String code, String orderId);

        public abstract void weixinPayForApp(String status, String orderId);

        public abstract void getOrderMoney(String orderId);
    }
}
